package ch4oopexer1;

/*2：定义全能驾驶员对象，可以开汽车、飞机、坦克，和拖拉机和轮船。
汽车有座位数、排量等属性。有启动、刹车、等方法
飞机有飞行高度、座位数等属性，有起飞、降落方法
坦克有马力数、携带弹头数等属性，有启动、爬坡等方法
拖拉机有载重、体积等属性，有启动、加速等方法
轮船有载重、排水量、航速等属性，有起航，鸣笛、抛锚等方法
分别定义汽车、飞机等类；并通过构造方法初始化属性
定义全能驾驶员类测试*/
public class Driver {
    String name;

    public Driver(){}
    public Driver(String name){
        this.name = name;
    }
    public void drive(Plane plane) {
        System.out.println(name + "驾驶飞机");
        System.out.println("飞机飞行高度：" +plane.height +" ,座位数："+plane.airseat);
        plane.takeOff();
        plane.land();

    }

    public void drive(Tank tank) {
        System.out.println(name + "驾驶坦克");
        System.out.println("坦克马力数：" +tank.horsepower +" ,坦克弹头数量"+tank.account);
        tank.run();
        tank.upsolpe();
    }

    public void drive(Ship ship) {
        System.out.println(name + "驾驶轮船");
        System.out.println("轮船的载重：" +ship.load +" ,轮船的排水量："+ship.displacement+" ，轮船的航速："+ship.speed);
        ship.run();
        ship.whistle();
        ship.dropAnchor();
    }

    public void drive(Encryption encryption) {
        System.out.println(name + "驾驶拖拉机");
        System.out.println("拖拉机的载重：" +encryption.weight +" ,拖拉机的体积："+encryption.volume);
        encryption.run();
        encryption.accelerate();
    }

    public void drive(Car car) {
        System.out.println(name + "驾驶小汽车");
        System.out.println("小汽车的座位数：" +car.seat +" ,小汽车的排量："+car.vol);
        car.run();
        car.brake();
    }

}
